草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c++ - MinGW 是否足够稳定

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。MinGW(Windows上的gcc端口)是否足够稳定以编译由各种数据算法(无DirectX、无图形等)组成的DLL以实现24/7生产?我们需要做出决定,出于多种原因我们不想使用VisualC++。所以问题是:“当前的MinGW是否足够稳定以用于生产?”

c++ - 在 AllocConsole 之前执行 std::endl 会导致不显示 std::cout

我正在尝试使用经典的RedirectIOToConsole函数在WindowsVisual2012、Linker/Subsystem=Windows(/SUBSYSTEM:WINDOWS)的输出控制台上重定向跟踪。在AllocConsole之前执行std::endl似乎会导致显示痕迹出现问题。下面是我的测试:#include#include#includevoidRedirectIOToConsole(){FILE*conin,*conout;AllocConsole();freopen_s(&conin,"conin$","r",stdin);freopen_s(&conout,"c

c++ - 在 Windows 7 上编译和运行 GTK+ 应用程序

系统:Windows7,32位,GTK2.24.10,mingw我正在尝试编写基本的helloworld.c类型的基于GTK的应用程序。但是,它没有运行。这些是我遵循的步骤。安装MinGW。下载GTK+一揽子服务。提取C:\gtk文件夹中的内容。打开cmd,进入C:\gtk\bin目录,运行pkg-config--cflags--libsgtk+-win32-2.0它打印编译标志列表和链接你的库项目到。复制它们并创建一个bath文件,如下所示。设置VAR=FLAGS开始命令其中VAR=GTK,FLAGS=上一个命令(pkg-config)的输出。当你想编译文件时使用命令:gccfoo.

c - Windows命名管道问题

我正在编写一个通过命名管道与用户空间应用程序通信的驱动程序。用户态应用程序通过调用CreateNamedPipe()创建命名管道,然后通过调用IOCTL将管道名称传递给驱动程序。然后,驱动程序通过调用ZwCreateFile()打开管道。然后,用户态应用程序进入一个循环,从管道读取请求、处理请求并将结果写回管道,即:while(1){ReadFromPipeProcessRequestWriteToPipe}驱动程序基本上是将请求写入管道,然后直接读回答案:WriteRequestToPipeReadAnswerFromPipe我的问题是,如果ReadAnswerFromPipe在应用

c++ - D3D11CreateDeviceAndSwapChain 未解析的外部

这完全让我发疯。当我编译我的程序时,我收到以下错误消息:错误LNK2019:无法解析的外部符号_D3D11CreateDeviceAndSwapChain@48我知道我拥有所有正确的lib/和include目录(x86),并且我已经将问题追踪到这样一个事实:如果我转到定义(F12),我会得到两个符号,一个用于DirectXSDK安装目录,一个位于“c:\ProgramFiles(x86)\WindowsKits\8.0\Include\um”。对于我的生活,我不知道该做什么。我已经遍历了所有包含/排除目录,但无法解析它,而且我不知道该怎么做。谁能帮帮我? 最

c - 有效地为不同的 Windows 版本使用不同的 API

我面临着使用可用的新Windows运行时功能的需要,并回退到新功能不存在的旧功能。代码路径对性能至关重要。如果平台(Windows8/WindowsServer2012)提供,我需要调用GetSystemTimePreciseAsFileTime,如果不存在较新的版本,则回退到GetSystemTimeAsFileTime。我知道我可以使用LoadLibrary和GetProcAddress加载GetSystemTimePreciseAsFileTime如果失败,回退到GetSystemTimeAsFileTime。我担心通过另一层间接调用像这样对性能至关重要的东西对性能的影响。是否有

c++ - 为什么 std::vector::at() 即使启用了优化也需要边界检查?

Windows中的libstdc++-6.dll有问题。这段代码:#include#includeintmain(){std::vectorx(10);std::cout编译很好,但是当我运行它时,我收到一条错误消息说Theprocedureentrypoint_ZSt24__throw_out_of_range_fmtPKczcouldnotbelocatedinthedlllibstdc++-6.dll我的问题是不是如何解决这个问题(这很可能是dll的错误版本,我只需要修复PATH)。然而,这让我意识到了一些意想不到的事情:当我打开优化时,上面的代码运行良好(不管错误的dll),即

c++ - wcsdup 分配的内存是否应该显式释放?

类似wcsdup的函数,隐式调用malloc为目标缓冲区分配内存。我想知道因为内存分配不是很明确,所以显式释放存储似乎合乎逻辑吗?这更像是一个设计困境,赞成和反对的理由如下应该被释放因为不释放它会导致内存泄漏。有据可查的是,wcsdup/_wcsdup调用malloc来分配内存,即使它是从C++程序调用的。不应被释放,因为wcsdup积累的内存最终会在程序退出时释放。在整个程序生命周期中,我们总是会遇到一些内存泄漏(除非我们大量调用wcsdup以获得较大的缓冲区大小)。它可能会造成混淆,因为free之前没有明确的malloc。由于它不是标准的一部分但符合posix,Microsoft实

c - 独立于汇编操作系统的原子比较和交换

我正在编写独立于操作系统的无锁队列,队列工作正常(使用默认的windows\linux原子CAS),但我想在linux和windows中不做任何更改的情况下使队列工作。所以我想我应该在汇编器中编写自己的CAS,或者有其他方法可以实现它?到目前为止我有这段代码:global_CAS_CAS:moveax,[esp+4]movedx,[esp+8]movecx,[esp+12];XCHGeax,edx我知道我仍然需要在CMPXCHG之前添加lock并且它应该与结构一起工作,但现在我更感兴趣的是让它工作。我使用nasm-2.10.05和这个命令编译nasm.exe-felf-ocas.oca

Windows 上的 C++ std::string 转换问题

这是我的程序:boolOpen(std::stringfilename){...HANDLEhFile=CreateFile(filename.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);...}错误:“CreateFileW”:无法将参数1从“constchar*”转换为“LPCWSTR”指向的类型是不相关的;转换需要reinterpret_cast,C风格的转换或函数风格的转换问题出在哪里? 最佳答案 std::string由一个char数组组成